「新規作成」メニューに追加したい
[図1 新規作成メニュー]
A:(延さん)
やはり、このメニューもレジストリで制御されていますから、基本的にはレジストリエディタを使う必要があります。
Q:(貴子)
またレジストリ? 面倒ね。
A:(延さん)
まあレジストリエディタを操作しないでも、簡単に「新規作成」メニューに追加するツールもあります。それも今Windows98の標準で用意されるようになったもので、PowerToysというツール群の中の「Tweak UI」というツールです。これについては後でまた説明しますが、一応「新規作成」の原理を理解するためにもレジストリでどのように記述するとメニューが作成できるのか見てみましょうか。
Q:(一郎兄さん)
ん、がんばってみるよ。
A:(延さん)
まず「新規作成」メニューは「拡張子」の単位に表示されます。「拡張子」は今更説明するまでもないと思いますが、これが分からない人は「関連付けについて」のページをよく読んでください。「拡張子」は「ファイルの関連付け」と非常に密接な関係があります。ですからこの「拡張子」と関連する「新規作成」メニューも「ファイル関連付け」と極めて密接な関係があるので、いずれにしても「関連付けについて」のページでしっかり復習してください。
一応上記のページを読んで、ある程度「関連付け」について理解しているという前提で話を進めます。またレジストリについて、更にレジストリエディタの使い方も「レジストリエディタの使い方」のページを読んで理解していることも前提です。いいですね?
Q:(初心者の皆さん)
は〜い!
A:(延さん)
まず「新規作成」メニューに出てくる拡張子の条件は、ある拡張子があるファイルタイプと関連付けされており、さらにそのファイルタイプが以下のような条件を備えていなければなりません。
1. 「open」アクションがあること。
※「標準アクション」でないところがミソ!
2. その「open」アクションに何らかのアプリケーションが関連付けされていること。
3. 「タイプの説明」があること。
さて上記のような条件を備えた「拡張子」のファイルの場合、レジストリのその拡張子キーの下に次ぎのようなキーが記述されていれば、「新規作成」メニューに現れ、新規作成を行うことができるようになります。
[図2 新規作成のためのレジストリ値(空ファイル)]
拡張子キー(例では「.psd」)の下に「ShellNew」というキーがあり、その下に文字列値「NullFile」という名前があればいい訳です。値は空で構いません。これだけで上記の例ですと、「.psd」という拡張子のための「新規作成」メニューがでます。
具体的な現れ方ですが、「.psd」というのは、例である私のパソコンの環境では下図ように、「PhotoShop.Image.5」というファイルタイプに関連付けられています。
[図3 ファイルタイプ]
図には表れませんが、このファイルタイプのタイプの説明は「Adobe PhotoShop Image」になってます。よって、新規作成メニューにはこの「Adobe PhotoShop Image」というタイトルで、このファイルタイプに関連付けされたアイコンと共に表示されます。([図1 新規作成メニュー]参照)
Q:(貴子)
ああ、だから「タイプの説明」が必要なのね。「タイプの説明」がないとメニューに表示するタイトルが決まらない。
A:(延さん)
貴子にしては、いいところに気がついたね。その通りです。
で、実際このメニューを選ぶと、実行されたフォルダに下記のように「新規”タイプの説明”.拡張子」という名称の(という命名基準で)中身が空のファイルが作成されます。
[図4 新規作成されたファイル]
私は今「空のファイル」ができると言いました。しかし空のファイルではなくて、ある特定のファイルをテンプレート(雛型)として作成することもできます。「新規作成」機能の良さはむしろここにあると思います。テンプレートを利用するには、レジストリ記述はもう少し複雑なものになります。
[図5 新規作成のためのレジストリ値(テンプレート利用)]
文字列値の名前は「NullFile」ではなくて「FileName」にして、値にある「ファイル名」(例では「sndrec.wav」)を記述します。で、ここからが大切なのでが、記述したこのファイル名で、利用したいテンプレートを「ShellNew」フォルダに置いておきます。「ShellNew」フォルダとは通常は「Windowsフォルダ\ShellNew」です。
[図6 ShellNewフォルダ]
これは私のパソコンの「ShellNew」フォルダですが、例の「Sndrec.wav」というファイルがあるのが分かるでしょう。これで「WAVEファイル」の新規作成では、このファイルをテンプレートに新規作成されます。作成されるファイルの命名基準はNullFileの場合(テンプレートを使わない場合)と同じです。
この「ShellNew」フォルダですが、通常は「Windowsフォルダ\ShellNew」だと言いましたが、ユーザによって違う場合もありますし、ユーザ毎に自分で別のフォルダに変更することができます。
レジストリ「HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders」キーの名前「templates」の値が当該ユーザの「ShellNew」フォルダになる訳です。
[図7 ShellNewフォルダの位置]
因みに記述したテンプレートファイル名の記述間違いや手違いで、実際「ShellNew」フォルダに同名のものが無かったら、以下のようなエラーになるので、注意して下さい。実際ちゃんと用意したつもりでも、ShellNewフォルダ自体が違う場所だったりする場合もあるので、このようなエラーが出たら、ファイル名の確認はさることながら、実際ShellNewフォルダの位置も確認しましょう。
[図8 テンプレートが見つからない場合のエラーメッセージ]
また下記のように記述し忘れなどで、テンプレート名称が単に空の場合、奇妙な現象が起こることが確認されています。
[図9 テンプレート名称なし]
この場合は、なぜか「ShellNew」フォルダそのものをテンプレートとして新規ファイルならぬ新規「フォルダ」が作成されてしまいます。
[図10 新規作成されてしまったShellNewフォルダ]
ShellNewフォルダがそのまま複写されているので、中には本物のShellNewフォルダにある数々のテンプレートが入っています。 もしこのような現象が起きたら、上記のようなレジストリ値になっていないかを確認して下さい。
ところでこれまで、レジストリの文字列値として「NullFile」と「FileName」について説明してきましたが、もうひとつ「command」という文字列値もあります。この文字列値の場合は値に「実行コマンド(アプリケーションのパス)」を記述します。
[図11 コマンド指定]
図の例では、メモ帳の実行コマンド「C:\WINDOWS\NOTEPAD.EXE」を指定しています。また今までとは少し違う「%2」というパラメータ値が記述されています。このような記述をすることによって、当該新規作成を実行すると、指定アプリケーションを新規作成されるはずのファイルをパラメータ(これが%2の指定)として実行してくれます。
ただしこの機能は新規作成そのものは行わないので、アプリケーションをまだ存在しない「新規作成されるはずのファイル名」をパラメータに指定して実行するだけです。従って指定アプリケーションから見ると、まだ存在しないファイルを開くように指定されたことになります。もしこのアプリケーションがそんなファイルは存在しないといって、実行を拒否したらこの機能は殆どその意味を失います。
アプリケーションが存在しないファイルを指定された場合、自ら新規作成を行って開いてくれるような仕様になっていれば、新規作成とその新規ファイルの編集が1アクションでできるので大変便利な機能だと言えます。ただ残念ながらExcelやWordなど主要なアプリケーションは殆どそのような仕様になっていませんでした。またこの機能の場合、テンプレートの利用はできません。
さて今までの説明では、レジストリ値に「拡張子」キーの下(直下)に「ShellNew」というキーが記述されている例を挙げてきましたが、以下のように、間に「ファイルタイプ名」キーを挟んだものもあります。
[図12 ファイルタイプキーが間に入る場合]
この場合と、前述の拡張子キーの直下にある場合で、動作に違いは認められませんでした。同じように新規作成ができます。どのような違いがあるのかは現在分かっていません。また下記のように複数の異なったファイルタイプキーを挟んで複数のShellNewキーがあるものもあります。
[図13 複数のShellNewキーがある場合]
実際使われるのは、自分のファイルタイプのもの(例では「Excel.Sheet.8」)です。他のもの(例では「Excel.Sheet.5」「Excel.WorkSheet」など)はどのような使われ方をするのかはまだ分かっていません。今調査中です。何も意味がないとは思えないので、分かり次第報告します。
Q:(のりこ)
かなり難しいわね。私には全くお手上げだわ。
A:(延さん)
確かにそうだね。じゃここで最初の方でも言ったけど、簡単に「新規作成」メニューが作れる「Tweak UI」というツールについて説明しましょう。
もともとWindowsの標準では用意されていなかった様々な機能を提供する「PowerToys」というツールがWindows95の時代にありました。Microsoftが作ったものですが、とても便利なものだったので、多くの人が使っていたと思います。Windows NTでも同じものが使えます。この「PowerToys」というツール群の中の一つのツールが「Tweak UI」です。Windows98になってこの「Tweak UI」だけ標準で用意されました。といっても普通の標準のインストールではインストールされないので、別途インストールする必要があります。
Windows98のCD-ROMの \tools\reskit\powertoy\Tweaui.inf を右クリックして「インストール(I)」を選択してください。インストールはこれだけです。Windowsの再起動後、コントロールパネルから「Tweak UI」を実行して下さい。ただしこのツールは英語版です。これを日本語化するソフトもインターネット上にありますので、探して日本語化してもいいでしょう。英語のままでもそれほど不便ではないですが。
[図14 Tweak UI の新規作成タブ]
上記「新規作成タブ」内のリストに、エクスプローラなどから希望のファイルをドラッグアンドドロップするだけで、そのファイルをテンプレートとした「新規作成」ができるようになります。
Q:(のりこ)
実に簡単ね。私はこれでいいわ。
Q:(貴子)
私も。
A:(延さん)
まあテンプレート利用もできるし、これで通常は十分だね。皆さん、「新規作成」についてよく分かりましたか?
Q:(初心者の皆さん)
は〜い!